package com.sale.system.service;

import com.sale.common.core.domain.R;
import com.sale.common.mybatis.core.page.PageQuery;
import com.sale.common.mybatis.core.page.TableDataInfo;
import com.sale.system.domain.SysAuxiliaryData;
import com.sale.system.domain.dto.SysAuxiliaryDataDto;
import com.sale.system.domain.dto.SysTheDropDto;
import com.sale.system.domain.dto.UnitMessageDto;
import com.sale.system.domain.vo.SysAuxiliaryDataVo;

import java.util.List;

/**
 * @Author: YSL
 * @Date: 2023/7/13 10:30
 * @Desc: 辅助资料
 */
public interface ISysAuxiliaryDataService {

    /**
     * 查询单计量单位列表(分页)
     * @param sysAuxiliaryDataVo
     * @param pageQuery
     * @return
     */
    TableDataInfo<SysAuxiliaryData> selectPageAuxiliaryList(SysAuxiliaryDataVo sysAuxiliaryDataVo, PageQuery pageQuery);

    /**
     * 查询单计量单位列表(不分页)
     * @param sysAuxiliaryDataVo
     * @param
     * @return
     */
    List<SysAuxiliaryData> listNotPage(SysAuxiliaryDataVo sysAuxiliaryDataVo);

    /**
     * 查询单条单计量单位信息
     * @param auxiliaryId
     * @return
     */
    SysAuxiliaryData getSingleMeasurementUnitById(Long auxiliaryId);

    /**
     * 新增单计量单位
     * @param sysAuxiliaryDataVo
     * @return
     */
    int insertSingleMeasurementUnit(SysAuxiliaryDataVo sysAuxiliaryDataVo);

    /**
     * 修改单计量单位
     * @param sysAuxiliaryDataVo
     * @return
     */
    int updateSingleMeasurementUnit(SysAuxiliaryDataVo sysAuxiliaryDataVo);

    /**
     * 删除单计量单位信息
     * @param auxiliaryId
     * @return
     */
    int deleteSingleMeasurementUnit(Long auxiliaryId);

    /**
     * 新增辅助属性
     * @param sysAuxiliaryDataVo
     * @return
     */
    int insertAuxiliaryProperties(SysAuxiliaryDataVo sysAuxiliaryDataVo);

    /**
     * 修改辅助属性
     * @param sysAuxiliaryDataVo
     * @return
     */
    int updateAuxiliaryProperties(SysAuxiliaryDataVo sysAuxiliaryDataVo);

    /**
     * 查询辅助属性列表(分页)
     * @param sysAuxiliaryDataVo
     * @param pageQuery
     * @return
     */
    TableDataInfo<SysAuxiliaryDataDto> selectAuxiliaryPropertiesList(SysAuxiliaryDataVo sysAuxiliaryDataVo, PageQuery pageQuery);

    /**
     * 查询辅助属性列表(不分页)
     * @param
     * @return
     */
    List<SysAuxiliaryDataDto> selectAuxiliaryDtoList(String categoryType);

    /**
     * 查询单个辅助属性
     * @param auxiliaryId
     * @return
     */
    SysAuxiliaryDataDto getInfoAuxiliaryProperties(Long auxiliaryId);

    /**
     * 删除辅助属性详情
     * @param auxiliaryId
     * @return
     */
    int deleteAuxiliaryProperties(String auxiliaryId);

    /**
     * 单计量单位下拉
     * @return
     */
    List<SysTheDropDto> selectUnitList();

    /**
     * 根据单计量单位id查询详情
     * @param auxiliaryId
     * @return
     */
    SysAuxiliaryData getByAuxiliaryData(Long auxiliaryId);

    /**
     * 其他支出类别
     * @return
     */
    List<SysTheDropDto> selectDisburseList();

    /**
     * 其他收入类别
     * @return
     */
    List<SysTheDropDto> selectIncomeList();

    /**
     * 根据物料id获取单位相关信息（入库打印使用）
     */
    List<UnitMessageDto> getUnitMessage(String materialId);
}
